var unhandleIcon = '<span class="icon-unhandle">&nbsp;</span>';

//1
function checkMainIdType() {	
	var mainIdNo = $j("input[name='updateBean.mainIdNo']");
	if (mainIdNo.val()!='') {
		var mainIdType = $j("input[name='updateBean.mainIdType']");
		var regx = new RegExp("^(CI|OP|PP|AI|OI|JR|GO|SW|FI|OC|OJ|OG)$");
		if (!regx.test(mainIdType.val())) {
			return "ID Type ไม่อยู่ในช่วงข้อมูลที่ยอมรับได้ {CI, OP, PP, AI, OI, JR, GO, SW, FI, OC, OJ, OG}";
		}
	}
	return null;
}
//2
function checkMainIdTypeMainIdNo() {
	var idType = $j("input[name='updateBean.mainIdType']");
	var mainIdNo = $j("input[name='updateBean.mainIdNo']");
	if (idType.val()!='') {
		if (idType.val() =='CI') {
			var regx1 = new RegExp("^[123458]+");
			//var regx2 = new RegExp("^[0-9]*$");
			var regx3 = new RegExp("^[0-9]{13}$");
			if (!regx1.test(mainIdNo.val())) {
				return "ID ของประเภท CI ต้องขึ้นต้นด้วยเลข 1, 2, 3, 4, 5 หรือ 8 เท่านั้น";
			} else if (!regx3.test(mainIdNo.val())) {
				return "ID ของประเภท CI จะต้องเป็นตัวเลข 13 หลัก";
			} else if (!checkDigit(mainIdNo.val())) {
				return "Check digit ผิดพลาด (ID No.)";
			}
		} else if (idType.val() =='JR') {
			var regx1 = new RegExp("^[0]+");
			//var regx2 = new RegExp("^[0-9]*$");
			var regx3 = new RegExp("^[0-9]{13}$");
			if (!regx1.test(mainIdNo.val())) {
				return "ID ของประเภท JR ต้องขึ้นต้นด้วยเลข 0 เท่านั้น";
			} else if (!regx3.test(mainIdNo.val())) {
				return "ID ของประเภท JR จะต้องเป็นตัวเลข 13 หลัก";
			} else if (!checkDigit(mainIdNo.val())) {
				return "Check digit ผิดพลาด (ID No.)";
			}
		} else if (idType.val() =='AI') {
			var regx1 = new RegExp("^[0345678]+");
			//var regx2 = new RegExp("^[0-9]*$");
			var regx3 = new RegExp("^[0-9]{13}$");
			if (!regx1.test(mainIdNo.val())) {
				return "ID ของประเภท AI ต้องขึ้นต้นด้วยเลข 0, 3, 4, 5, 6, 7 หรือ 8 เท่านั้น";
			} else if (!regx3.test(mainIdNo.val())) {
				return "ID ของประเภท AI จะต้องเป็นตัวเลข 13 หลัก";
			} else if (!checkDigit(mainIdNo.val())) {
				return "Check digit ผิดพลาด (ID No.)";
			} 
		} else if (idType.val() =='OP') {
			var regx1 = new RegExp("^.{3,16}$");//new RegExp("^[a-zA-Z0-9/ก-ํเ]{3,16}$");
			if (!regx1.test(mainIdNo.val())) {
				return "ID ของประเภท OP จะต้องเป็นตัวอักษรหรือตัวเลข 3-16 หลัก";
			}  
		} else if (idType.val() =='PP') {
			var regx1 = new RegExp("^.{5,15}$");//new RegExp("^[a-zA-Z0-9/ก-ํเ]{5,15}$");
			if (!regx1.test(mainIdNo.val())) {
				return "ID ของประเภท PP จะต้องเป็นตัวอักษรหรือตัวเลข 5-15 หลัก";
			}  
		} else if (idType.val() =='OI') {
			var regx1 = new RegExp("^.{5,25}$");//new RegExp("^[a-zA-Z0-9/ก-ํเ]{5,25}$");
			if (!regx1.test(mainIdNo.val())) {
				return "ID ของประเภท OI จะต้องเป็นตัวอักษรหรือตัวเลข 5-25 หลัก";
			} 
		} else if (idType.val() =='GO') {
			var regx1 = new RegExp("^[0-9]{5}$");
			if (!regx1.test(mainIdNo.val())) {
				return "ID ของประเภท GO จะต้องเป็นตัวเลข 5 หลัก";
			} 
		} else if (idType.val() =='SW') {
			var regx1 = new RegExp("^.{11}$");//new RegExp("^[a-zA-Z0-9/ก-ํเ]{11}$");
			if (!regx1.test(mainIdNo.val())) {
				return "ID ของประเภท SW จะต้องเป็นตัวอักษรหรือตัวเลข 11 หลัก";
			}  
		} else if (idType.val() =='FI') {
			var regx1 = new RegExp("^[0-9]{3}$");
			if (!regx1.test(mainIdNo.val())) {
				return "ID ของประเภท FI จะต้องเป็นตัวเลข 3 หลัก";
			}  
		} else if (idType.val() =='OC') {
			var regx1 = new RegExp("^.{3,16}$");//new RegExp("^[a-zA-Z0-9/ก-ํเ]{3,16}$");
			if (!regx1.test(mainIdNo.val())) {
				return "ID ของประเภท OC จะต้องเป็นตัวอักษรหรือตัวเลข 3-16 หลัก";
			}  
		} else if (idType.val() =='OJ') {
			var regx1 = new RegExp("^.{5,25}$");//new RegExp("^[a-zA-Z0-9/ก-ํเ]{5,25}$");
			if (!regx1.test(mainIdNo.val())) {
				return "ID ของประเภท OJ จะต้องเป็นตัวอักษรหรือตัวเลข 5-25 หลัก";
			}  
		} else if (idType.val() =='OG') {
			var regx1 = new RegExp("^.{5,25}$");//new RegExp("^[a-zA-Z0-9/ก-ํเ]{5,25}$");
			if (!regx1.test(mainIdNo.val())) {
				return "ID ของประเภท OG จะต้องเป็นตัวอักษรหรือตัวเลข 5-25 หลัก";
			}  
		}
	}
	return null;
}
//3
function checkNationality() {
	var nationality = $j("input[name='updateBean.nationality']");
	var totalRmInGroup = $j("#totalRmInGroup");
	var totalRmInGroupInt = parseInt(totalRmInGroup.val());
	if (nationality.val()!='' || (!isNaN(totalRmInGroupInt)&&(totalRmInGroupInt>0))) {
		if (isoCountryCode[nationality.val()]==null) {
			nationality.parent().next(".unhandle-click").html(unhandleIcon);
			return "Nationality ไม่อยู่ในช่วงข้อมูลที่ยอมรับได้";
		} 
	}
	nationality.parent().next(".unhandle-click").html('');
	return null;
}
//4
function checkPc() {
	var regx = new RegExp("^(P|C)$");
	var pC = $j("input[name='updateBean.pC']");
	if (!regx.test(pC.val())) {
		pC.parent().next(".unhandle-click").html(unhandleIcon);
		return "P/C ไม่อยู่ในช่วงข้อมูลที่ยอมรับได้ {P, C}";
	} 
	pC.parent().next(".unhandle-click").html('');
	return null;
}
//5
function checkCt() {
	var ct = $j("input[name='updateBean.ct']");
	var totalRmInGroup = $j("#totalRmInGroup");
	var totalRmInGroupInt = parseInt(totalRmInGroup.val());
	if (ct.val()!='' || (!isNaN(totalRmInGroupInt)&&(totalRmInGroupInt>0))) {
		var regx = new RegExp("^(0[1-9]|1[01234589]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|6[0-9]|7[0-7])$");
		if (!regx.test(ct.val())) {
			ct.parent().next(".unhandle-click").html(unhandleIcon);
			return "C/T ไม่ถูกต้อง";
		} 
	}
	ct.parent().next(".unhandle-click").html('');
	return null;
}
//6
function checkCrossPcCtNationality() {
	var errMsg = 'C/T ไม่อยู่ในช่วงข้อมูลที่ยอมรับได้, ไม่ผ่านเงื่อนไขการ Cross Validation ระหว่าง P/C, Nationality และ C/T';
	var pC = $j("input[name='updateBean.pC']");
	var nationality = $j("input[name='updateBean.nationality']");
	var ct = $j("input[name='updateBean.ct']");
	if (pC.val()=='P') {
		if (nationality.val()=='TH') {
			var regx = new RegExp("^(09|40|54|49|72)$");
			if (!regx.test(ct.val())) {
				$j('#vldCtPcNationalityStatus').html(unhandleIcon);
				return errMsg;
			}
		} else if (nationality.val()!='') {
			var regx = new RegExp("^(11|30|31|39|40|52|53|54|49)$");
			if (!regx.test(ct.val())) {
				$j('#vldCtPcNationalityStatus').html(unhandleIcon);
				return errMsg;
			}
		}
	} else if (pC.val()=='C') {
		if (nationality.val()=='TH') {
			var regx = new RegExp("^(0[1-8]|1[034589]|2[346789]|37|4[23456789]|5[01789]|6[01234567]|7[0234567])$");
			if (!regx.test(ct.val())) {
				$j('#vldCtPcNationalityStatus').html(unhandleIcon);
				return errMsg;
			}
		} else if (nationality.val()!='') {
			var regx = new RegExp("^(12|2[0125]|3[234568]|4[1389]|5[56]|6[8]|7[14567])$");
			if (!regx.test(ct.val())) {
				$j('#vldCtPcNationalityStatus').html(unhandleIcon);
				return errMsg;
			}
		}
	}
	$j('#vldCtPcNationalityStatus').html('');
	return null;
}
//7
function checkCrossPcIdNationality() {
	var errMsg = 'ID Type ไม่ผ่านเงื่อนไขการ Cross Validation ระหว่าง P/C, Nationality, ID Type';
	var pC = $j("input[name='updateBean.pC']");
	var nationality = $j("input[name='updateBean.nationality']");
	var mainIdType = $j("input[name='updateBean.mainIdType']");
	if (pC.val()=='P') {
		if (nationality.val()=='TH') {
			var regx = new RegExp("^(CI|OP)$");
			if (!regx.test(mainIdType.val())) {
				return errMsg;
			}
		} else if (nationality.val()!='') {
			var regx = new RegExp("^(PP|AI|OI)$");
			if (!regx.test(mainIdType.val())) {
				return errMsg;
			}
		}
	} else if (pC.val()=='C') {
		if (nationality.val()=='TH') {
			var regx = new RegExp("^(JR|GO|SW|FI|OC)$");
			if (!regx.test(mainIdType.val())) {
				return errMsg;
			}
		} else if (nationality.val()!='') {
			var regx = new RegExp("^(OJ|OG|SW|FI)$");
			if (!regx.test(mainIdType.val())) {
				return errMsg;
			}
		}
	}
	return null;
}
//8 - duplicate
function checkDobDoe() {
	var dobDoe = $j("input[name='updateBean.thDobDoe']");
	if (dobDoe.val()!='') {
		var regx = new RegExp("^([1-9]|0[1-9]|1[0-9]|2[0-9]|3[01])[/]([1-9]|0[1-9]|1[0-2])[/](2[2-9][0-9][0-9])$");
		if (!regx.test(dobDoe.val())) {
			dobDoe.parent().next(".unhandle-click").html(unhandleIcon);
			return "วัน/เดือน/ปี เกิด หรือวัน/เดือน/ปี จดทะเบียนฯ ไม่ถูกต้อง ";
		}
	}
	dobDoe.parent().next(".unhandle-click").html('');
	return null;
}
//9
function checkGender() {
	var gender = $j("input[name='updateBean.gender']");
	if (gender.val()!='') {
		var regx = new RegExp("^(M|F)$");
		if (!regx.test(gender.val())) {
			gender.parent().next(".unhandle-click").html(unhandleIcon);
			return "เพศ ไม่ถูกต้อง";
		}
	}
	gender.parent().next(".unhandle-click").html('');
	return null;
}
//10
function checkCrossPcCt() {
	var pC = $j("input[name='updateBean.pC']");
	var nationality = $j("input[name='updateBean.nationality']");
	var ct = $j("input[name='updateBean.ct']");
	if (nationality.val()=='') {
		if (pC.val()=='P') {
			var regx = new RegExp("^(09|11|30|31|39|40|49|52|53|54|72)$");
			if (!regx.test(ct.val())) {
				$j('#vldCtPcNationalityStatus').html(unhandleIcon);
				return 'สำหรับ P :ไม่ใช่ C/T ของลูกค้าบุคคลฯ';
			} 
		} else if (pC.val()=='C') {
			var regx = new RegExp("^(0[1-8]|1[0234589]|2[0-9]|3[2-8]|4[1-9]|5[0156789]|6[0-9]|7[0-7])$");
			if (!regx.test(ct.val())) {
				$j('#vldCtPcNationalityStatus').html(unhandleIcon);
				return 'สำหรับ C :ไม่ใช่ C/T ของลูกค้านิติบุคคล';
			}
		}
	}
	$j('#vldCtPcNationalityStatus').html('');
	return null;
}
//11
function checkCrossPcId() {
	var pC = $j("input[name='updateBean.pC']");
	var nationality = $j("input[name='updateBean.nationality']");
	var mainIdType = $j("input[name='updateBean.mainIdType']");
	if (nationality.val()=='') {
		if (pC.val()=='P') {
			var regx = new RegExp("^(CI|OP|PP|AI|OI)$");
			if (!regx.test(mainIdType.val())) {
				return 'สำหรับ P :ไม่ใช่ ID ของลูกค้าบุคคลฯ';
			} 
		} else if (pC.val()=='C') {
			var regx = new RegExp("^(JR|GO|SW|FI|OC|OJ|OG)$");
			if (!regx.test(mainIdType.val())) {
				return 'สำหรับ C :ไม่ใช่ ID ของลูกค้านิติบุคคล';
			}
		}
	}
	return null;
}
//12
function checkCrossPcDobDoe() {
	var dobDoe = $j("input[name='updateBean.thDobDoe']");
	var pC = $j("input[name='updateBean.pC']");
	if (dobDoe.val()!='' && dobDoe.val()!='00/00/0000') {
		var regx = new RegExp("^([1-9]|0[1-9]|1[0-9]|2[0-9]|3[01])[/]([1-9]|0[1-9]|1[0-2])[/](2[2-9][0-9][0-9])$");
		if (!regx.test(dobDoe.val())) {
			dobDoe.parent().next(".unhandle-click").html(unhandleIcon);
			return 'วัน/เดือน/ปี เกิด หรือวัน/เดือน/ปี จดทะเบียนฯ ไม่ถูกต้อง';
		} else if (!isValidDateDDMMYYYY(dobDoe.val())) {
			dobDoe.parent().next(".unhandle-click").html(unhandleIcon);
			return 'วัน/เดือน/ปี เกิด หรือวัน/เดือน/ปี จดทะเบียนฯ ไม่ถูกต้อง';
		} else {		   	
			var dobDoes = dobDoe.val().split('/');
			var current = new Date();
			var today = new Date(current.getTime());
			var d = new Date(current.getTime());
			d.setFullYear(dobDoes[2]-543);
			d.setMonth(dobDoes[1]-1);
			d.setDate(dobDoes[0]);
			if (pC.val()=='P') {
				current.setFullYear(current.getFullYear()-150);
				if (d.getTime()<=current.getTime() || d.getTime()>today.getTime()) {
					dobDoe.parent().next(".unhandle-click").html(unhandleIcon);
					return 'สำหรับ P :วัน/เดือน/ปี เกิดของลูกค้าบุคคล จะต้องน้อยกว่าหรือเท่ากับ 150 ปีจากปีปัจจุบัน';
				}
			} else if (pC.val()=='C') {
				current.setFullYear(current.getFullYear()-250);
				if (d.getTime()<=current.getTime() || d.getTime()>today.getTime()) {
					dobDoe.parent().next(".unhandle-click").html(unhandleIcon);
					return 'สำหรับ C :วัน/เดือน/ปี จดทะเบียนฯ ของลูกค้านิติบุคคล จะต้องน้อยกว่าหรือเท่ากับ 250 ปีจากปีปัจจุบัน';
				}
			}
		}
	}
	dobDoe.parent().next(".unhandle-click").html('');
	return null;
}
//13
function checkPcDerivePc() {
	var pC = $j("input[name='updateBean.pC']");
	var derivedPC = $j("#derivedPC");
	if (pC.val()!=derivedPC.val()) {
		$j("#vldPcConsistencyStatus").html(unhandleIcon);
	} else {
		$j("#vldPcConsistencyStatus").html('');
	}
	return null;
}